package informes;

import java.io.*;
import java.util.Date;

public class GestorInformes{
	
	private GestorBaseDatos gbd;
	private InformeParadas paradas;
	private InformeBlisteres blisteres;
	private InformePasteles pasteles;
	
	public GestorInformes(){
		String ruta = System.getProperty("user.dir");
		int pos = ruta.lastIndexOf("\\Bizcochos");
		ruta = ruta.substring(0, pos+10) + "\\SI.mdb";
		gbd = new GestorBaseDatos(ruta);
		paradas = new InformeParadas();
		blisteres = new InformeBlisteres();
		pasteles = new InformePasteles();
		
		try{
			blisteres.obtenerDatos(gbd);
		}catch(Exception e){
			System.out.println(" Fallo al obtener datos de los blisteres de la Base de Datos. --> " + e.toString());
		}
		
		try{
			pasteles.obtenerDatos(gbd);
		}catch(Exception e){
			System.out.println(" Fallo al obtener datos de los pasteles de la Base de Datos. --> " + e.toString());
		}
		
		try{
			paradas.obtenerDatos(gbd);
		}catch(Exception e){
			System.out.println(" Fallo al obtener datos de las paradas de la Base de Datos. --> " + e.toString());
		}
	}
	
	public void aumentarBlisteresCorrectos(){
		blisteres.aumentarCorrectos();
	}	
	public void aumentarBlisteresDefectuosos(){
		blisteres.aumentarDefectuosos();
	}
	public void aumentarBlisteresCorrectos(int n){
		blisteres.aumentarCorrectos(n);
	}	
	public void aumentarBlisteresDefectuosos(int n){
		blisteres.aumentarDefectuosos(n);
	}
	
	public void aumentarArranques(){
		paradas.aumentarArranques(gbd);
	}
	public void aumentarNormales(){
		paradas.aumentarNormales(gbd);
	}
	public void aumentarEmergencia(){
		paradas.aumentarEmergencia(gbd);
	}
	public void aumentarFallo(){
		paradas.aumentarFallo(gbd);
	}
	
	public void aumentarPastelesCorrectos(){
		pasteles.aumentarCorrectos();
	}	
	public void aumentarPastelesDefectuosos(){
		pasteles.aumentarDefectuosos();
	}
	public void aumentarPastelesCorrectos(int n){
		pasteles.aumentarCorrectos(n);
	}	
	public void aumentarPastelesDefectuosos(int n){
		pasteles.aumentarDefectuosos(n);
	}
	
	
	public String obtenerInformeParadas(){
		return paradas.obtenerInforme(gbd);
	}
	
	public String obtenerInformeBlisteres(){
		return blisteres.obtenerInforme(gbd);
	}
	
	public String obtenerInformePasteles(){
		return pasteles.obtenerInforme(gbd);
	}
	
	public void generarInformePasteles(){
		FileWriter fichero = null; 
		String datos = this.obtenerInformePasteles(); 
		try{ 
			File ficheroNuevo = new File (System.getProperty("user.dir").toString() + "\\InformePasteles - " + ((new Date()).toGMTString()).replace(':', ' ') + ".txt");
			try {
				  ficheroNuevo.createNewFile();				  
				} catch (IOException ioe) {
				  System.out.println("Problemas al crear el fichero de informe de pasteles.");
				}
			// Creas la instancia del fichero 
			fichero = new FileWriter(ficheroNuevo);
			fichero.write(datos);
			// Cierras el fichero 
			fichero.close(); 
		}catch(IOException ioe){ 
			System.out.println("Error al escribir en fichero al generar el informe de pasteles");
		}
	}
	
	public void generarInformeBlisteres(){
		FileWriter fichero = null; 
		String datos = this.obtenerInformeBlisteres(); 
		try{ 
			File ficheroNuevo = new File (System.getProperty("user.dir").toString() + "\\InformeBlisteres - " + ((new Date()).toGMTString()).replace(':', ' ') + ".txt");
			try {
				  ficheroNuevo.createNewFile();				  
				} catch (IOException ioe) {
				  System.out.println("Problemas al crear el fichero de informe de blisteres.");
				}
			// Creas la instancia del fichero 
			fichero = new FileWriter(ficheroNuevo);
			fichero.write(datos);
			// Cierras el fichero 
			fichero.close(); 
		}catch(IOException ioe){ 
			System.out.println("Error al escribir en fichero al generar el informe de blisteres");
		} 
	}
	
	public void generarInformeParadas(){
		FileWriter fichero = null; 
		String datos = this.obtenerInformeParadas(); 
		try{ 
			File ficheroNuevo = new File (System.getProperty("user.dir").toString() + "\\InformeParadas - " + ((new Date()).toGMTString()).replace(':', ' ') + ".txt");
			try {
				  ficheroNuevo.createNewFile();				  
				} catch (IOException ioe) {
				  System.out.println("Problemas al crear el fichero de informe de paradas.");
				}
			// Creas la instancia del fichero 
			fichero = new FileWriter(ficheroNuevo);
			fichero.write(datos);
			// Cierras el fichero 
			fichero.close(); 
		}catch(IOException ioe){ 
			System.out.println("Error al escribir en fichero al generar el informe de paradas");
		} 
	}
	
	

}
